Stereolithography printer mapping a plurality of pixels of a cross-sectional image to corresponding mirrors of a plurality of mirrors of a digital micromirror unit

ABSTRACT

Techniques and systems for 3D printing using mirrors that are oriented at about 45 degrees from an X-axis and Y-axis are described. A technique includes receiving an object model; rotating the object model about 45 degrees around the Z-axis; generating cross-sectional images of the rotated object model; mapping pixels of the cross-sectional images to corresponding mirrors of a digital micromirror device of an additive manufacturing apparatus to form additive-manufacturing images, wherein edges of the mirrors are oriented about 45 degrees from the X-axis of the digital micromirror device and about 45 degrees from the Y-axis of the digital micromirror; and providing the additive manufacturing images to generate a build piece corresponding to the object model. Other implementations can include corresponding systems, apparatus, and computer program products.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation application of U.S. patentapplication Ser. No. 15/593,939, filed on May 12, 2017, whichapplication claims priority to U.S. Provisional Application No.62/336,292, filed on May 13, 2016, which applications are incorporatedherein by reference in their entirety.

BACKGROUND

This specification relates to three-dimensional (3D) printing.

Photopolymer-based 3D printers that use bottom-up illumination canproject light upwards through an optically transparent window into a vatof photo-reactive resin to cure at least a portion of the resin. Suchprinters can build a 3D structure by forming one layer at a time, wherea subsequent layer adheres to the previous layer. The light can bepatterned to cause some portions of the resin to cure and other portionsnot to cure, thereby creating substructures of the 3D structure.

SUMMARY

This specification describes technologies relating to 3D printing usingmirrors that are oriented away from an X-axis and Y-axis. In one aspect,a described technique includes receiving an object model that identifiesa plurality of vertices in a coordinate space having a Z-axis orthogonalto an X-axis and a Y-axis; rotating the object model by an angle aroundthe Z-axis in the coordinate space; generating cross-sectional images ofthe rotated object model, each cross-sectional image comprising aplurality of pixels, each pixel having an X-value along the X-axis ofthe coordinate space and a Y-value along the Y-axis of the coordinatespace; mapping pixels of the cross-sectional images to correspondingmirrors of a digital micromirror device of an additive manufacturingapparatus to form additive-manufacturing images, wherein the digitalmicromirror device comprises a plurality of mirrors each having anX-value along an X-axis of the digital micromirror device and a Y-valuealong a Y-axis of the digital micromirror device, and wherein edges ofthe mirrors are oriented at the angle from an axis that is one of thegroup consisting of the X-axis of the digital micromirror device and theY-axis of the digital micromirror; and providing the additivemanufacturing images to generate, by the additive manufacturingapparatus, a build piece corresponding to the object model. Otherimplementations can include corresponding systems, apparatus, andcomputer program products.

These and other implementations can include one or more of the followingfeatures. Implementations can include printing, by the additivemanufacturing apparatus, the build piece corresponding to the objectmodel using the additive-manufacturing images to engage sets of mirrorsof the digital micromirror device. Printing, by the additivemanufacturing apparatus, the build piece corresponding to the objectmodel can include iteratively printing layers of the build piece,wherein for each layer of the build piece, mirrors of the digitalmicromirror device are selectively engaged according to correspondingpixel values in a corresponding additive manufacturing image. Mappingpixels of the cross-sectional images to corresponding mirrors of thedigital micromirror device of the additive manufacturing apparatus caninclude for each pixel of the cross-sectional images, finding theX-value along the X-axis of the digital micromirror device by performinga first function; and for each pixel of the cross-sectional images,finding the Y-value along the Y-axis of the digital micromirror deviceby performing a second function. The first function can beTotalColumns/2−INT(y/2)+INT((x+((y+1) % 2))/2), where x is the X-valueof a pixel, y is the Y-value of a pixel, TotalColumns is a maximumX-value of the digital micromirror plus one, INT( ) is a function thattruncates to a nearest integer and % is a modulus operator. The secondfunction can include x+y−TotalColumns, where x is the X-value of apixel, y is the Y-value of a pixel, and TotalColumns is a maximumX-value of the digital micromirror plus one. Generating cross-sectionalimages of the rotated object model can include slicing the object modelat an image resolution that is based on the resolution of the digitalmicromirror device. The image resolution can be greater than theresolution of the digital micromirror device. The image resolution canhave a length in pixels and a width in pixels that are each a width inmirrors of the digital micromirror device plus half a height in mirrorsof the micromirror device in mirrors. The additive manufacturingapparatus can provide at least a first mode of printing that performsfiltering and resampling and a second mode of printing that does notperform filtering and resampling. Implementations can include receivingan indication that the object model should be printed with the secondmode; and wherein the rotating, generating, and mapping are performedresponsive to receiving the indication that the object model should beprinted with the second mode. Implementations can include applying imageprocessing to the cross-sectional images.

A system can include an additive-manufacturing device comprising adigital micromirror device. The additive-manufacturing device can beconfigured to print build pieces from a photo-reactive resin byselectively applying energy to successive layers of the resin withfiltering and resampling, and print build pieces from a photo-reactiveresin by selectively applying energy to successive layers of the resinwithout filtering and resampling, wherein mirrors of the digitalmicromirror device can be arranged in a diamond orientation, and whereinthe digital micromirror device can be configured to operate in a firstmode with filtering and resampling and in a second mode withoutfiltering and resampling. The system can include a data processorconfigured to receive an object model that identifies a plurality ofvertices in a coordinate space having a Z-axis orthogonal to an X-axisand a Y-axis; rotate the object model about 45 degrees around the Z-axisin the coordinate space; generate cross-sectional images of the rotatedobject model, each cross-sectional image comprising a plurality ofpixels, each pixel having an X-value along the X-axis of the coordinatespace and a Y-value along the Y-axis of the coordinate space; map pixelsof the cross-sectional images to corresponding mirrors of a digitalmicromirror device of the additive manufacturing device to formadditive-manufacturing images, wherein the digital micromirror devicecomprises a plurality of mirrors each having an X-value along an X-axisof the digital micromirror device and a Y-value along a Y-axis of thedigital micromirror device, and wherein edges of the mirrors areoriented about 45 degrees from the X-axis of the digital micromirrordevice and about 45 degrees from the Y-axis of the digital micromirror.

Particular implementations disclosed herein can provide one or more ofthe following advantages. A described technology can orient a buildpiece to be printed with a digital micromirror device havingdiamond-oriented micromirrors. A described technology can be used tomore accurately print a 3D structure.

Details of one or more implementations are set forth in the accompanyingdrawings and the description below. Other features and advantages may beapparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 shows an example of a 3D printing system coupled with a computer.

FIGS. 2A-2C show data that may be used to selectively engage micromirrosof a digital micromirror device used in a 3D printing system.

FIG. 3 is a flowchart of an example of a process that transforms adigital model into data suitable for rendering on a 3D printer.

Like reference symbols in the various drawings indicate like elements

DETAILED DESCRIPTION

Some 3D printers use a digital micromirror device to aim light used toharden a photopolymer or other build material. In some cases, mirrors ofthe digital micromirror are arranged in a two-dimensional grid with eachmirror oriented at about 45 degrees from the X-axis and Y-axis of thegrid. To print a build piece in such a 3D printer, data related to amodel to be printed may be reoriented to match this same orientation ofthe mirrors. In this way, an advantage of the technology can be realizedin that artifacts from filtering and resampling to accommodate themirror orientation may be reduced or eliminated in build pieces createdby the 3D printer, thereby providing higher resolution in the buildpiece with higher fidelity to the model.

Many commercially available digital micromirror devices and commerciallyavailable 3D printers are available only with mirrors oriented at about45 degrees from the X-axis and Y-axis of the grid. The use of thistechnology allows for improved performance of those devices withoutrequiring expensive or time-consuming modifications to the hardware ofthose devices. Instead, a comparatively cheaper and fastersoftware-preprocessing step can be used to improve the performance. Thistechnology can be used, for example, when the use of a device withmirrors oriented at about 45 degrees from the X-axis and Y-axis of thegrid is a given or a design constraint that a system designer is notable to change.

FIG. 1 shows an example of a 3D printing system 100 coupled with acomputer 150. The computer 150 can provide information about a 3Dstructure to the 3D printing system 100 for printing. The computer 150can communicate with a controller 145 of the printing system 100 via awireline or wireless connection. The controller 145 can includeintegrated circuit technology, such as an integrated circuit board withembedded processor and firmware to control various system componentssuch as a 3D printing mechanism 140 and a light projection device 142.

The system 100 includes a vat 110 to hold a liquid 120, which includesone or more photo-reactive resins. The vat 110 includes a window 115 inits bottom through which light is transmitted to cure resin to form a 3Dprinted build piece 160 in a layer-by-layer build process. The 3Dprinted build piece 160 is shown as a block, but as will be appreciated,a wide variety of complicated shapes can be 3D printed. The build piece160 is 3D printed on a build plate 130, which can be connected by a rod135 to a 3D printing mechanism 140. The printing mechanism 140 caninclude various mechanical structures for moving the build plate 130within the vat 110. This movement is relative movement, and thus themoving piece can be build plate 130, the vat 110, or both, in variousimplementations.

In some implementations, the window 115 includes a material such aspolydimethylsiloxane (PDMS) to prevent resin from adhering to the window115 during a curing procedure. Other techniques can be used to preventresin from adhering to the window 115 such as a photo-inhibitiontechnique that prevents resin from curing within a section of the vat110 immediately above the window 115, while allowing resin to curefurther away from the window 115.

The light projection device 142 can be positioned below the window 115.The controller 145 can operate the light projection device 142 toproject a pattern of light 185 into the vat 110 to form substructures ofthe build piece 160. The light 185 has a wavelength which is used tocreate the 3D build piece 160 on the build plate 130 by curing thephoto-reactive resin in the liquid 120 within a photo-initiation region175, in accordance with a defined pattern or patterns. The wavelengthcan be selected based on the characteristics of the photo-reactive resinin the liquid 120. The build plate 130 can start at a position near thebottom of the vat 110, and varying patterns of the light 185 aredirected through the window 115 to create layers of the solid buildpiece 160 as the build plate 130 is raised out of the vat 110 by theprinting mechanism 140. In some implementations, the printing mechanism140 can employ a stepwise separation mechanism that raises the buildplate 130 by a predetermined amount after each layer completion, e.g.,after a predetermined curing time. In some implementations, the printingmechanism 140 can include mechanisms to aid in separation, e.g. byproviding a rotation out of the plane of FIG. 1. In someimplementations, the printing mechanism 140 can employ a continuousseparation mechanism that continuously raises the build plate 130.

The light projection device 142 can be configured to modulate its lightoutput based on a two dimensional grid of pixels. In someimplementations, the light projection device 142 can include a pixeladdressable filter to allow controlled amounts of light to pass at somepixel locations while blocking or deflecting light at other pixellocations from a light source within the light projection device 142. Apixel addressable filter can include a digital micromirror device (DMD)143.

The DMD 143 can include mirrors that each correspond to one of thepixels in the grid of pixels. Each of the mirrors can have an X-valuealong an X-axis of the DMD 143 and a Y-value along a Y-axis of the DMD143. The X-values may be denoted as columns and the Y values may bedenoted as rows, and successive rows and/or columns may be laterallyoffset from adjacent rows or columns. Edges of the mirrors can beoriented about 45 degrees (e.g., 45+/−10 degrees) from the X-axis of theDMD 143 and about 45 degrees (e.g., 45+/−10 degrees) from the Y-axis ofthe DMD 143. As a result, the mirrors may be said to be diamondoriented. Alternatively, some DMDs may be configured with mirrors thatare parallel to the X-axis or Y-axis. In many cases, these DMDs requiremore space, which may result in larger 3D printing system 100. By usingthe DMD 143 with diamond oriented mirrors, a comparatively smaller 3Dprinting system 100 may be designed and manufactured.

A controller within the DMD can selectively engage the mirrors accordingto some data received from the controller 145. This data can include,for example, a two dimensional grid of data values indicating engaged ordisengaged mirrors, a video stream, or other data.

The DMD 143 can be configured to operate in multiple modes. For example,in one mode, the DMD 143 can operate with low-pass filtering andresampling. In this mode, sometimes called video mode, the amount oflight allowed to pass at a pixel location is influenced by the amount oflight allowed to pass at adjacent or nearby pixel locations. This canreduce, for example, hard transitions in which one pixel allows largeamounts of light while a neighbor pixel allows little or no light. Inanother example mode, sometimes called pattern mode, the DMD 143 canoperate without filtering and resampling. In this mode, the amount oflight at a pixel location is not influenced by the amount of lightallowed to pass at adjacent or nearby pixel locations. This can produce,for example, the kinds of hard transitions that are reduced by filteringand resampling.

Different print jobs can produce more or less desirable resultsdepending on the mode of operation of the DMD 143. For example, someobject models may have straight geometric segments, and printing inpattern mode can produce a build piece 160 with corresponding straightgeometry with little or no artifacts from the diamond orientation of themirrors. The same object model, if printed in video mode, can produce abuild piece 160 with undesirable artifacts caused by the filtering andresampling. In another example, an object model may include smallfeatures or smooth surfaces. For example, geometry created from fontscan include serifs and other small features that terminate in acuteangles. Printing these object models in video mode can produce betterresults by printing these small features with more broadening thanprinting in pattern mode. Video mode may also produce better resultswhen printing smooth surfaces. As such, the 3D printing system 100 canbe configured to print in either of the two modes. The selection of thetwo modes can be made, for example, by analysis of the object model tobe printed, based on user input, etc.

In some implementations, the light projection device 142 can include apixel addressable light source to produce controlled amounts of light atsome pixel locations and not produce light at other pixel locations. Insome implementations, the light projection device 142 includes a liquidcrystal display (LCD) device, discrete light emitting diode (LED) arraydevice, laser, or a digital light processing (DLP) projector.

In some implementations, the 3D printing system 100 can include sensorsand be designed to modify its operations based on feedback from thesesensors. For example, the 3D printing system 100 can use closed loopfeedback from sensors in the printer to improve print reliability. Suchfeedback sensors can include one or more strain sensors on the rod 135holding the build plate 130 to detect if adhesion has occurred and stopand/or adjust the print, and one or more sensors to detect polymerconversion, such as a spectrometer, a pyrometer, etc. These sensors canbe used to confirm that the 3D printing is proceeding correctly, todetermine if the resin has been fully cured before the 3D printingsystem 100 proceeds to the next layer, or both. Moreover, in someimplementations, one or more cameras can be used along with computervision techniques to check that the print is proceeding as expected.Such cameras can be positioned under the vat 110 to examine the output,e.g., 3D printed layer, which the controller 145 can compare to theinput, e.g., mask or layer image.

The computer 150 can include a processor 152, memory 154, and interfacessuch as a network interface or a Universal Serial Bus (USB) interface.The processor 152 can be one or multiple processors, which can eachinclude multiple processor cores. The memory 154 can include volatilememory such as Random Access Memory (RAM). The memory 154 can includenon-volatile memory such as flash memory or read-only memory (ROM). Thecomputer 150 can include one or more types of computer storage media anddevices, which can include the memory 154, to store instructions ofprograms that run on the processor 152. For example, a 3D printingprogram 156 can be stored in the memory 154 and run on the processor 152to implement the techniques described herein. In some implementations,the controller 145 can include the 3D printing program 156 or a portionthereof.

The 3D printing program 156 can transform a digital model into asequence of layers that collectively describe the build piece 160. The3D printing program 156 can access a file containing mesh data thatrepresents a digital model. Mesh data can include descriptions ofgeometric shapes such as polygons and their locations within the digitalmodel. The 3D printing program 156 can map the digital model intothree-dimensional discrete points called voxels. In someimplementations, a voxel can be mapped to a pixel within a layer. Insome implementations, the digital model can be sliced into grids ofpixels and each pixel represents a voxel.

FIGS. 2A-2C show data 200-206 that can be used to selectively engagemicromirros of the DMD 143 used in the 3D printing system 100. Forexample, the data 202-206 can be generated and used by the computer 150and/or the controller 145 to print a build piece from an object model.

Data 200 includes an object model that identifies a plurality ofvertices in a coordinate space having a Z-axis orthogonal to an X-axisand a Y-axis. As shown in this example, the object model is a five-sidedpolyhedron that has some edges that align with the axes of thecoordinate space. This data 200 include x, y, and z coordinates from anorigin 208 for each of the vertices, or can take any othertechnologically appropriate format.

Data 202 includes the object model of the data 202 rotated 45 degreesabout a line in the Z-direction in the coordinate space. For example,the computer 150 can apply a rotation matrix to the x, y, and zcoordinates of each original vertex of the polyhedron, which can resultin new locations for each vertex without changing the shape of thepolyhedron. This rotation can be in either the positive or negativedirection.

Data 204 includes cross-sectional images of the rotated object model ofthe data 202. Each of the cross-sectional images includes a plurality ofpixels, each pixel having an X-value along the X-axis of the coordinatespace and a Y-value along the Y-axis of the coordinate space. Thecross-sectional images may or may not include the Z-direction.Cross-sectional images may, for example, represent one increment in theZ-direction, and may contain two-dimensional pixels or three-dimensionalvoxels. In the representation shown, only two such cross-sectionalimages are shown for clarity, although many more cross-sectional imagescan be used. Similarly, a coarse two-dimensional grid of pixels isshown, but a finer grid of smaller pixels can be used.

Each of the cross-sectional images show a cross-section of the objectmodel at a particular plane in the Z-axis of the coordinate space. Thisis sometimes called a slice. The pixels of the cross-section can be setto one of two colors or values (e.g., black or white, 0 or 1) dependingon if they fall within the object model. For pixels that are partlywithin the object model and partly out of the object model, anintermediate color or value can be used (e.g., a grayscale orpercentage). This intermediate color or value can vary according to thepercentage of pixel filled by the object model, so a more full pixel canbe assigned a brighter color or higher percentage.

The cross-sectional images are shown with a darkly-shaded rectangulararea that may be called an active area and four diagonal-hatchedtriangular areas. The active area can be aligned along the X-axis andY-axis of an origin 210, which is oriented by the same angle as themirrors of the DMD 143 are oriented. In this example, this same angle bywhich both the origin 210 and the mirrors of the DMD 143 are oriented is45 degrees or about 45 degrees. However, in some other configurations,the origin 210 and the DMD 143 may both be oriented by a differentangle. For example, if the DMD 143 is replaced by a DMD having mirrorsoriented at a 30-degree angle, the origin 210 may also be oriented by 30degrees or about 30 degrees.

The active area can have a size, in pixels, that matches the size, inmirrors, of the DMD 143. The overall size of the cross-sectional imagescan be set so that the cross-sectional images can contain the darklyshaded rectangular area. In one example, the DMD 143 can have 912columns of mirrors and 1140 rows of mirrors. In this example, the sizeof the cross-sectional images can be 1482 pixels in both dimensions. Insome cases, the size of the cross-sectional images can be determined byadding the number of columns of the DMD 143 to half the number of rowsof the DMD 143 (e.g., 912+1140/2=1482) to determine the resolution oneach of the X and Y axes.

Data 206 includes additive-manufacturing images created from thecross-sectional images of the data 204. In the representation shown,only two such additive-manufacturing images are shown for clarity,though many more additive-manufacturing images can be used. Similarly, acoarse two-dimensional grid of pixels is shown, but a finer grid ofsmaller pixels can be used.

The additive-manufacturing images can have a size, in pixels, thatmatches the size, in pixels, of the active area and that matches thesize, in mirrors, of the DMD 143. The controller 145 or the computer 150can map 212 the colors or pixel values of the active area of thecross-sectional images to pixel values of the additive-manufacturingimages. In general terms, this means that the upper-left (e.g., [0,0])pixel of the additive manufacturing image is given the value of theupper-left pixel of the corresponding active area. Then the next pixel(e.g., [1,0]) of the additive manufacturing image is given the value ofthe next pixel of the corresponding active area. Example functions thatmay be used to perform this mapping 212 are described below. A mapping212 for only some of the pixels is shown. However, a mapping for most orall pixels of the active area and additive-manufacturing images can beused. Any pixel in the cross-sectional image that cannot be mapped to apixel in the additive-manufacturing image is outside of the active areaand may therefore be ignored.

Like the active area, the additive-manufacturing images can be alignedalong the X-axis and Y-axis of an origin 210. Effectively, this mapping212 of pixels from the active area to the additive-manufacturing imagescan reverse the rotation applied to the object model in the data 202.The additive-manufacturing images can be created to contain only one oftwo colors or values, with no pixels having an intermediate color orvalue. For this mapping, pixels that are partly within the object modeland partly out of the object model can be mapped to be within or out ofthe object model. For example, a pixel with a percentage above 50% canbe assigned to be within the object model as more than half of the pixelis within the object model. The additive-manufacturing images can alsobe created to contain a range of colors or values, with intermediatevalues corresponding to pixels that are partly within the object modeland partly out of the object model.

3D printing systems 100′ and 100″ show the DMD 143 and the build piece160 of the 3D printing system 100 at two points in time that correspondto the two additive-manufacturing images shown in FIG. 2B. Engagedmirrors 214 and 216 correspond to pixel locations in the additivemanufacturing images that contain one value (white, 1, etc.) andunengaged mirrors 218 and 220 correspond to pixel locations in theadditive manufacturing images that contain another value (black, 0,etc.) Although shown at different scales for clarity here, theadditive-manufacturing images may have the same numbers of rows andcolumns of pixels as the number of rows and columns of mirrors of theDMD 143.

In the 3D printing systems 100′, a set of mirrors 214, shown in white,of the DMD 143 are engaged to print the first layer of the build piece160. The unengaged mirrors 218 are shown in black. In the 3D printsystem 100″, a different set of mirrors 216 of the DMD 143 are engagedto print a higher layer of the build piece. In this example, the set ofengaged mirrors 216 in the 3D printing system 100″ is a subset of theengaged mirrors 214 in the 3D print system 100′, but this is notrequired.

The engaged mirrors 214 and 216 of the 3D printing systems 100′ and 100″reflect light of the light projection device 142 to selectively hardenthe liquid 120. The non-engaged mirrors do not reflect light into theliquid 120, and thus do not harden any of the liquid 120.

FIG. 3 is a flowchart of an example of a process 300 that transforms adigital model into data suitable for rendering on a 3D printer. Theprocess 300 can be performed by, for example, computing devices and/or3D printers having digital micromirror devices where mirrors areoriented about 45 degrees. For clarity, the process 300 will bedescribed with reference to the printing system 100 and the data200-206. However, other systems may be used to perform the process 300or similar processes.

An object model is received 302. For example, the computer 150 canreceive the data 200 from a local or remote data source. This caninclude loading a removable memory device into the computer 150 oraccessing a data source via a computer network.

The object model identifies a plurality of vertices in a coordinatespace having a Z-axis orthogonal to an X-axis and a Y-axis. For example,the object model can be stored in a file format such as DWG Fusion 360Archive, Inventor Parts, STL, or another format that identifies thesevertices. The object model can be stored in American Standard Code forInformation Interchange (ASCII), as binary data, or in anotherappropriate form.

In some cases, an initial orientation can be determined by the computer150. This can include an automated process or user interaction. Forexample, some object models can be predicted to print more quickly insome orientations, and the user or an automated process can set theinitial orientation to take advantage of this prediction.

A print mode is selected 304. For example, the additive manufacturingapparatus can provide multiple printing modes. In a first mode ofprinting, the additive manufacturing apparatus can perform filtering andresampling and a second mode of printing does not perform filtering orresampling. In some cases, the print mode may be selected with userinput. For example, a user may examine the object model to determine ifit contains features that will be printed more faithfully with filteringand resampling or without filtering and resampling, and the user canenter the corresponding mode selection. In some cases, the print modemay be selected without user input. For example, the computer 150 canexamine the object model and select a print mode based on an automatedtest. This test can include determining if small features, smoothsurfaces, or other similar features are present. If so, the test canindicate the print mode with filtering and resampling. If such featuresare not present, the test can indicate that the print mode withoutfiltering and resampling should be used. Other types of tests arepossible as well.

If the first print mode, which performs filtering and resampling, isselected, additive-manufacturing images are generated 306. For example,the computer 150 can slice the object model in the data 202 at regularintervals along the Z-axis of the coordinate space. At each interval,the computer 150 can generate the data 204 with pixel values or colorsbased on the pixel being within the object model at that interval.

If the second print mode, which does not necessarily perform filteringand resampling, is selected, rotating 306, generating 308, and mapping312 are performed responsive to receiving the indication that the objectmodel should be printed with the second mode. In some implementations,process 312 is also preformed responsive to receiving the indicationthat the object model should be printed with the second mode. Filteringand resampling may be performed as part of process 312.

The object model is rotated 308. For example, the computer 150 canmodify the data 200 to rotate object model about 45 degrees, in eitherdirection, around the Z-axis in the coordinate space to create the data202. As used in this document, “about 45 degrees” includes a rangearound 45, from 35 to 55.

Cross-sectional images are generated 310. For example, the computer 150can slice the object model in the data 202 at regular intervals alongthe Z-axis of the coordinate space. At each interval, the computer 150can generate the data 204 with pixel values or colors based on the pixelbeing within the object model at that interval.

Each cross-sectional image has a plurality of pixels, each pixel havingan X-value along the X-axis of the coordinate space and a Y-value alongthe Y-axis of the coordinate space. The cross-sectional images can havean image resolution that is based on the resolution of the digitalmicromirror device. For example, an image resolution that is larger thanthe resolution of the digital micromirror device can be found byrotating an active area of a cross-sectional image. In some cases, theimage resolution may have a length in pixels and a width in pixels thatare each equal to half the number of rows of mirrors of the DMD 143 plusthe number of columns of mirrors of the DMD 143. In some cases, a largerimage resolution may be used. A larger image resolution will still belarge enough to include an active area oriented at the same angle as themirrors of the DMD 143 are oriented.

The cross-sectional images are processed 312. For example, the computer150 can alter cross-sectional images to compensate for differences inimage size, to normalize intensity variations in the print system 100,to smooth boundaries, or to enhance fine details, etc. For example, aspreviously described, some fine details may not be printed well withoutfiltering and resampling. In some cases, this may be because a singlepixel is to be printed with no or few adjacent pixels printed. This canresult in reduced spill-over light compared to if more adjacent pixelswhere printed. In such a case, the cross-sectional images can beprocessed to reduce this artifact. For example, the intensity of lightapplied to such pixels and/or the time for which they are exposed can beincreased.

Pixels are mapped 314 from the cross-sectional images to correspondingmirrors of a digital micromirror device of an additive manufacturingapparatus to form additive manufacturing images. For example, thecomputer 150 can use the data 204 to form the data 206. To do so, thecomputer 150 can, for each pixel location [X₁,Y₁] of the cross-sectionalimage, find a corresponding mirror location [X₂,Y₂] of the digitalmicromirror device 143. The computer 150 can then copy the pixel value(e.g. black) from the cross-sectional image at pixel location [X₁,Y₁] tothe pixel in the additive-manufacturing image at pixel location [X₂,Y₂].

For each pixel of the cross-sectional images, the computer 150 can findthe X-value along the X-axis of the digital micromirror device byperforming a first function and for each pixel of the cross-sectionalimages find the Y-value along the Y-axis of the digital micromirrordevice by performing a second function. The first function used can beTotalColumns/2−INT(y/2)+INT((x+((y+1) % 2))/2), where x is the X-valueof a pixel, y is the Y-value of a pixel, TotalColumns is a maximumX-value of the digital micromirror plus one, INT( ) is a function thattruncates to a nearest integer and % is a modulus operator. The secondfunction used can be x+y−TotalColumns, where x is the X-value of apixel, y is the Y-value of a pixel, and TotalColumns is a maximumX-value of the digital micromirror plus one.

The additive manufacturing images are provided 316 to the additivemanufacturing apparatus to generate a build piece corresponding to theobject model of data 206. For example, the computer 150 can pass theadditive manufacturing images to the controller 145. A build piece isprinted 318 by the additive manufacturing apparatus.

Printing 318, by the additive manufacturing apparatus, the build piececorresponding to the object model comprises iteratively printing layersof the build piece. For each layer of the build piece, sets of mirrorsof the DMD 143 are selectively engaged according to corresponding pixelvalues in a corresponding additive manufacturing image. Consider anexample in which the DMD 143 has a number of columns represented byTotalColumns and a number of rows represented by TotalRows. Toselectively engage the mirrors of the mirrors of the DMD 143, acontroller of the DMD 143 of an additive-manufacturing image and engageor not engage the mirror according to the pixel values. That is, thecontroller can examine pixels at locations [0,0], [0,1][TotalColumns−1,TotalRows−1] and engage or not engage a mirror at [0,0],[0,1] . . . [TotalColumns−1,TotalRows−1] based on the pixel value (e.g.,engaged for white or 1 and not engaged at black or 0). Thus, a layer ofthe build piece is printed having the shape shown by the correspondingadditive manufacturing image. Although a particular order, number, andtype of steps is described here, other orders, numbers, and types ofsteps can be performed, or performed by other systems. For example, someof the actions described as being performed by the computer 150 can beperformed by the controller 145, remote servers, etc. In other examples,the additive manufacturing images may never be provided 316 to print 318a build piece, the cross-sectional images can never be processed 312,etc.

In some examples, an additive manufacturing device that does not supportvideo mode may be used. The selection 304 of print mode may not beneeded, or may select from print modes that all do not use filtering andresampling. In such cases, the generating 306 is not performed.

Embodiments of the subject matter and the functional operationsdescribed in this specification can be implemented in digital electroniccircuitry, or in computer software, firmware, or hardware, including thestructures disclosed in this specification and their structuralequivalents, or in combinations of one or more of them. Embodiments ofthe subject matter described in this specification can be implementedusing one or more modules of computer program instructions encoded on acomputer-readable medium for execution by, or to control the operationof, data processing apparatus. The computer-readable medium can be amanufactured product, such as hard drive in a computer system or anoptical disc sold through retail channels, or an embedded system. Thecomputer-readable medium can be acquired separately and later encodedwith the one or more modules of computer program instructions, such asby delivery of the one or more modules of computer program instructionsover a wired or wireless network. The computer readable medium can be amachine-readable storage device, a machine-readable storage substrate, amemory device, or a combination of one or more of them.

The term “data processing apparatus” encompasses all apparatus, devices,and machines for processing data, including by way of example aprogrammable processor, a computer, or multiple processors or computers.The apparatus can include, in addition to hardware, code that creates anexecution environment for the computer program in question, e.g., codethat constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, a runtime environment, or acombination of one or more of them. In addition, the apparatus canemploy various different computing model infrastructures, such as webservices, distributed computing and grid computing infrastructures.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astand alone program or as a module, component, subroutine, or other unitsuitable for use in a computing environment. A computer program does notnecessarily correspond to a file in a file system. A program can bestored in a portion of a file that holds other programs or data (e.g.,one or more scripts stored in a markup language document), in a singlefile dedicated to the program in question, or in multiple coordinatedfiles (e.g., files that store one or more modules, sub programs, orportions of code). A computer program can be deployed to be executed onone computer or on multiple computers that are located at one site ordistributed across multiple sites and interconnected by a communicationnetwork.

The processes and logic flows described in this specification can beperformed by, and/or under the control of, one or more programmableprocessors executing one or more computer programs to perform functionsby operating on input data and generating output. The processes andlogic flows can also be performed by, and apparatus can also beimplemented as, special purpose logic circuitry, e.g., an FPGA (fieldprogrammable gate array) or an ASIC (application specific integratedcircuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both. The essential elements of a computer area processor for performing instructions and one or more memory devicesfor storing instructions and data. Generally, a computer will alsoinclude, or be operatively coupled to receive data from or transfer datato, or both, one or more mass storage devices for storing data, e.g.,magnetic, magneto optical disks, or optical disks. However, a computerneed not have such devices. Moreover, a computer can be embedded inanother device, e.g., a mobile telephone, a personal digital assistant(PDA), a mobile audio or video player, a game console, a GlobalPositioning System (GPS) receiver, or a portable storage device (e.g., auniversal serial bus (USB) flash drive), to name just a few. Devicessuitable for storing computer program instructions and data include allforms of non volatile memory, media and memory devices, including by wayof example semiconductor memory devices, e.g., EPROM, EEPROM, and flashmemory devices; magnetic disks, e.g., internal hard disks or removabledisks; magneto optical disks; and CD ROM and DVD-ROM disks. Theprocessor and the memory can be supplemented by, or incorporated in,special purpose logic circuitry.

To provide for interaction with a user, embodiments of the subjectmatter described in this specification can be implemented on a computerhaving a display device, e.g., a CRT (cathode ray tube) or LCD (liquidcrystal display) monitor, for displaying information to the user and akeyboard and a pointing device, e.g., a mouse or a trackball, by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, ortactile input.

Embodiments of the subject matter described in this specification can beimplemented in a computing system that includes a back end component,e.g., as a data server, or that includes a middleware component, e.g.,an application server, or that includes a front end component, e.g., aclient computer having a graphical user interface or a Web browserthrough which a user can interact with an implementation of the subjectmatter described is this specification, or any combination of one ormore such back end, middleware, or front end components. The componentsof the system can be interconnected by any form or medium of digitaldata communication, e.g., a communication network. Examples ofcommunication networks include a local area network (“LAN”) and a widearea network (“WAN”), an inter-network (e.g., the Internet), andpeer-to-peer networks (e.g., ad hoc peer-to-peer networks).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

While this specification contains many specifics, these should not beconstrued as limitations on the scope of what may be claimed, but ratheras descriptions of features that may be specific to particularembodiments. Certain features that are described in this specificationin the context of separate embodiments can also be implemented incombination in a single embodiment. Conversely, various features thatare described in the context of a single embodiment can also beimplemented in multiple embodiments separately or in any suitablesubcombination. Moreover, although features may be described above asacting in certain combinations and even initially claimed as such, oneor more features from a claimed combination can in some cases be excisedfrom the combination, and the claimed combination may be directed to asubcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments, and it should beunderstood that the described program components and systems cangenerally be integrated together in a single software product orpackaged into multiple software products.

Other embodiments are within the scope of the following claims.

What is claimed is:
 1. A method for printing an object, comprising: (a)receiving an object model corresponding to said object in a coordinatespace; (b) using said object model to generate a cross-sectional image,wherein said cross-sectional image is rotated at an angle relative to across-section of said object model in said coordinate space, and whereinsaid cross-sectional image comprises a plurality of pixels; and (c)mapping said plurality of pixels of said cross-sectional image tocorresponding mirrors of a plurality of mirrors of a digital micromirrorunit of an additive manufacturing device, to provide an additivemanufacturing image usable by said additive manufacturing device toprint at least a portion of said object.
 2. The method of claim 1,wherein sad plurality of mirrors is arranged in a two-dimensional grid,wherein edges of each mirror of the plurality of mirrors are oriented atsaid angle relative to said two-dimensional grid.
 3. The method of claim1, wherein said angle is about 45 degrees.
 4. The method of claim 1,further comprising, in (c), for each pixel of said plurality of pixels,(i) performing a first function to determine an X-value along an X-axisof the digital micromirror unit and (ii) performing a second function todetermine a Y-value along a Y-axis of the digital micromirror unit. 5.The method of claim 1, wherein an image resolution of saidcross-sectional image is based on a resolution of said digitalmicromirror unit.
 6. The method of claim 5, wherein said imageresolution is greater than said resolution of said digital micromirrorunit.
 7. The method of claim 5, said image resolution has a firstdimension in pixels and a second dimension in pixels, wherein each ofsaid first dimension and said second dimension is determined by a numberof mirrors along a width of said digital micromirror unit plus half anumber of mirrors along a height of said digital micromirror unit. 8.The method of claim 1, further comprising, in (b), performing filteringand resampling of one or more pixels of said plurality of pixels of saidcross-sectional image.
 9. The method of claim 8, further comprising (i)analyzing at least a portion of said object model and (ii) determiningwhether to perform said filtering and said resampling based at least inpart on said analyzing.
 10. The method of claim 9, wherein saidanalyzing comprises analyzing one or more features or surfaces of saidat least said portion of said object model.
 11. A system for printing anobject, comprising: an additive manufacturing device comprising adigital micromirror unit, wherein said additive manufacturing device isconfigured to print said object from a photo-reactive resin at least inpart by selectively applying light from said digital micromirror unit tosaid photo-reactive resin; and a data processor configured to (i)receive an object model corresponding to said object in a coordinatespace, (ii) use said object model to generate a cross-sectional image,wherein said cross-sectional image is rotated at an angle relative to across-section of said object model in said coordinate space, and whereinsaid cross-sectional image comprises a plurality of pixels, and (iii)map said plurality of pixels of said cross-sectional image tocorresponding mirrors of a plurality of mirrors of said digitalmicromirror unit, to provide an additive manufacturing image usable bysaid additive manufacturing device to print at least a portion of saidobject.
 12. The system of claim 11, wherein said plurality of mirrors isarranged in a two-dimensional grid, wherein edges of each mirror of theplurality of mirrors are oriented at said angle relative to saidtwo-dimensional grid.
 13. The system of claim 11, wherein said angle isabout 45 degrees.
 14. The system of claim 11, wherein said mapping in(iii) comprises, for each pixel of said plurality of pixels, (a)performing a first function to determine an X-value along an X-axis ofthe digital micromirror unit and (b) performing a second function todetermine a Y-value along a Y-axis of the digital micromirror unit. 15.The system of claim 11, wherein an image resolution of saidcross-sectional image is based at least in part on a resolution of saiddigital micromirror unit.
 16. The system of claim 15, wherein said imageresolution is greater than said resolution of said digital micromirrorunit.
 17. The system of claim 15, wherein said image resolution has afirst dimension in pixels and a second dimension in pixels, wherein eachof said first dimension and said second dimension is determined by anumber of mirrors along a width of said digital micromirror unit plushalf a number of mirrors along a height of said digital micromirrorunit.
 18. The system of claim 11, wherein, in (ii), said data processoris further configured to perform filtering and resampling of one or morepixels of said plurality of pixels of said cross-sectional image. 19.The system of claim 18, wherein said data processor is furtherconfigured to (i) analyze at least a portion of said object model and(ii) determine whether to perform said filtering and said resamplingbased at least in part on said analyzing.
 20. The system of claim 19,wherein said analyzing comprises analyzing one or more features orsurfaces of said at least said portion of said object model.